aparker
Files:s and winA = ...
B = ...
B_prime = ...
V = ...
DIM = 256
q = 15901
for i in range(DIM):
A[i][DIM-1-i] += 1
A = matrix(GF(q), A)
B = vector(GF(q), [x[0] for x in B])
s = ~A * B
B_prime = matrix(GF(q), B_prime)
pt = vector(GF(q), [x[0] for x in V]) - B_prime * s
flag = ""
for i in range(DIM):
tmp = int(pt[i])
tmp = (tmp + q // 32) // (q // 16)
tmp %= 16
flag += hex(tmp)[2:]
flag = [int(flag[i:i+2], 16) for i in range(0, len(flag), 2)]
print(bytes(flag))